10 research outputs found

    Computación en la Nube: Un estudio orientado para el despliegue de arquitecturas de componentes

    Get PDF
    Computación en la nubeLa Computación en la Nube es un concepto relativamente reciente en la literatura, que se ha ido consolidando cada vez más en cualquier ámbito y dominio de aplicación de la ingeniería informática, y considerado como un nuevo paradigma tecnológico para gestionar y ofrecer servicios de terceras partes a través de Internet. Aunque hoy dí a son muchos los trabajos existentes, este paradigma sigue en constante evolución, apareciendo continuamente en el tiempo nuevas metodologías, herramientas, y modelos de computación en la Nube. El presente documento es el resultado de un estudio realizado de la revisión de los trabajos más destacados en la literatura de la Computación en la Nube. La selección de los trabajos se ha realizado en base a aquellos que utilizan la Computación en la Nube como un mecanismo para el despliegue de Sistemas basados en Arquitecturas. El presente estudio pretende establecer las bases para el desarrollo de una metodología que permita el despliegue en la Nube de interfaces de usuario. A lo largo de este estudio se realiza un recorrido por la computación en la nube, cubriendo los conceptos esenciales, las arquitecturas que de finen esta tendencia, las características que identifican a este modelo de computación, algunas tecnologías que hacen posible su despliegue. Se estudia y analiza además los dominios de aplicación en los cuales se esta explotando la Computación en la Nube.Grupo informática aplicad

    COScore: una infraestructura de servicios para el despliegue de aplicaciones Mashup

    Get PDF
    En el campo de las ciencias de la computación y, en especial, en lo que respecta al desarrollo de sistemas de información, cada vez es más común la combinación de diversas tecnologías haciendo uso de múltiples marcos de trabajo y librerías, o conectando elementos que pertenecen a distintos desarrolladores. Este tipo de ensamblaje es bien conocido desde los comienzos de la Ingeniería del Software (SE, Software Engineering), con el diseño y construcción de sistemas software a partir de un conjunto de componentes reutilizables formando una arquitectura, dentro del campo de la Ingeniería del Software Basada en Componentes (CBSE, Component-Based Software Engineering). Estos sistemas basados en componentes pueden ser modificados y adaptados sin tener que ensamblar de nuevo cada una de las partes que los constituyen. Si se tiene acceso a la implementación, es posible realizar un proceso de actualización de su lógica interna (p.e., modificando el código) o, por el contrario, si se trata de un componente de “caja negra”, existen técnicas para la creación de un código envoltorio (wrapper) que puede ser automatizado para realizar dicha actualización. Dichos mecanismos, por lo tanto, se encargan de realizar algún cambio en la arquitectura del sistema. Esta flexibilidad permite modificar los componentes una vez que han sido desarrollados, tanto en tareas destinadas al mantenimiento y evolución del software, como en tareas de adaptación en tiempo de ejecución. Algunas de las estrategias de adaptación en tiempo de ejecución pueden ser diseñadas e implementadas durante el desarrollo del sistema, sin embargo, pueden existir otras estrategias que, por no haber sido identificadas en fase de desarrollo o por no disponer de la información necesaria, no hayan sido incluidas en el mecanismo encargado de “adaptar” el sistema. Por lo tanto, en el caso de que se quiera conseguir un sistema software basado en componentes que se adapte de forma dinámica y flexible, tanto a situaciones contempladas previamente como a las nuevas circunstancias que surjan, se pone de manifiesto la necesidad de poder aplicar nuevas opciones de “reconfiguración” que sean adicionales a la lógica de adaptación implementada. En cualquier caso, la infraestructura que de soporte a cualquiera de estas alternativas debe proporcionar las operaciones de reconfiguración necesarias, así como aquellas acciones que permitan gestionar las arquitecturas de dichos sistemas. Una infraestructura que proporcione un soporte a la adaptación de software basado en componentes debe tener en cuenta aspectos de interoperabilidad e integración de las diferentes piezas que lo constituyen. De manera ligada a dichos aspectos y como parte de una nueva tendencia en la que los diferentes componentes que constituyen un sistema software son considerados como servicios que deben ser conectados entre sí, surge el concepto de aplicaciones mashup. En esta nueva corriente, el término mashup no se refiere únicamente a servicios web ni su ámbito de aplicación está limitado al dominio Web sino que, por el contrario, pretende agrupar a aquellas aplicaciones software desarrolladas y desplegadas como resultado de la composición de elementos software heterogéneos. A modo de ejemplo, aplicaciones mashup de interfaz de usuario son ofrecidas en forma de paneles de mandos (dashboard) para que los usuarios de dichas aplicaciones puedan configurarse una interfaz con los componentes que deseen o que más utilicen. Casos específicos de este tipo de aplicaciones puede verse en productos actuales ofrecidos por Netvibes, Geckoboard o MyYahoo. En cualquier caso, todavía existe un vacío en lo que respecta a propuestas de infraestructuras que ofrezcan un soporte global a toda la funcionalidad relacionada con la gestión de aplicaciones mashup y con su despliegue, incluyendo operaciones de alta/baja/modificación de nuevos servicios, reconfiguración de las arquitecturas que definen las aplicaciones o gestión de la comunicación entre los servicios desplegados. El trabajo de investigación desarrollado en la presente tesis doctoral tiene como objetivo principal el desarrollo de una infraestructura que dé solución al despliegue y gestión de aplicaciones mashup. La infraestructura da soporte a aplicaciones mashup pertenecientes a distintos dominios e, incluso, que se desplieguen en dispositivos de plataformas diferentes. Con esta finalidad, la infraestructura se basa en un proceso de abstracción que nos permite definir las aplicaciones mashup como arquitecturas software en las que se representan cada uno de los componentes que forman parte de ellas, así como sus relaciones. De esta manera, las distintas piezas de las aplicaciones se gestionan de forma similar, independientemente del dominio y de la plataforma, y únicamente se ejecutan operaciones específicas de una plataforma cuando hay que generar el código necesario para el despliegue de las aplicaciones. Cada una de estas piezas ha sido nombrada como componente COTSget, de la combinación del concepto de componente COTS (Commercial Off-The-Shelf) para hacer referencia a componentes que pueden haber sido desarrollados por terceras partes, y del término gadget, que se refiere a un artefacto software que encapsula cierta funcionalidad y que permite llevar a cabo una tarea. Estos componentes son de granularidad gruesa, es decir, no se trata de componentes simples, sino que pueden tener cierta complejidad. Las aplicaciones mashup que se construyan con esta infraestructura, deben estar descritas en forma de arquitecturas software en las que cada una de sus piezas es un componente COTSget. El modelo de infraestructura utilizado incluye tres capas. La capa que se encuentra en el nivel inferior es la capa independiente de la plataforma y contiene toda la funcionalidad que es común a todos los dispositivos para los que se pueden construir aplicaciones mashup. La capa superior está formada por las propias aplicaciones mashup que se ejecutan en navegadores (en el caso de aplicaciones de tipo web) o en contenedores de aplicaciones (en el caso de aplicaciones de tipo Java). Entre ambas capas aparece la capa dependiente de la plataforma, encargada de conectar la capa cliente con la capa independiente. El objetivo de esta capa intermedia es permitir la comunicación entre ambas capas, de manera que las aplicaciones que se encuentran desplegadas en la capa cliente puedan ser gestionadas por la lógica de las operaciones de la capa independiente (teniendo en cuenta la información que proporciona la primera) y que las decisiones tomadas en la capa independiente puedan modificar las aplicaciones en tiempo de ejecución y de forma dinámica. Esta flexibilidad se consigue sin llevar a cabo una recarga de toda la aplicación y actualizando únicamente aquellas partes de la arquitectura que han sido modificadas. La capa dependiente también contiene los distintos repositorios de componentes que pueden formar parte de las aplicaciones mashup y, dependiendo del tipo de plataforma utilizada en cada momento, se hará uso de una colección u otra. Las capas dependiente e independiente de la plataforma constituyen el núcleo de la propuesta de esta tesis doctoral y juntas reciben el nombre de COScore (COTSget-based architecture Operating Support core). Uno de los aspectos que caracterizan este núcleo de la infraestructura es que está desarrollado como un conjunto de servicios. De esta forma, el desarrollo de la infraestructura ha generado una API que ofrece toda la funcionalidad necesaria para poder llevar a cabo el despliegue de aplicaciones mashup y que, además, permite realizar todas las acciones de gestión relacionadas con el uso de dichas aplicaciones.Ministerio de Economía y Competitividad (MINECO), proyecto TIN2013-41576-R Proyecto de Excelencia de la Junta de Andalucía, P10-TIC-611

    Dynamic Mashup Interfaces for Information Systems using Widgets-as-a-Service

    Get PDF
    Web Information Systems intend to adapt to the users’ preferences as new data available on the network. In this regard, the composition and reuse of services which are involved in a web application is an interesting research topic, since these techniques pursue the dynamic construction of applications that can be adapted at design or run time. As for the visualization of these applications, web user interfaces play a key role, serving as a connection point between users and the rest of the system. This article proposes an architecture for specification, storage, management and visualization of components, built from widgets complying with the W3C recommendation, for making web user interfaces. We follow a service-based approach for the interface deployment and communication management, introducing the concept of Widgets-as-a-Service (WaaS). To illustrate this proposal, an example of widget-based Web Information System is shown

    A Component-based User Interface Approach for Smart TV

    Get PDF
    The fast growth and diversity of technological devices currently being produced is benefiting areas such as “ambient intelligence”. This area attempts to integrate information technology in any personal environment. However, to construct service/application software that adapts to different environments, there must be techniques available that favor this type of development. Component based software Engineering (CBSE) is a discipline of the software engineering that integrates (previously constructed) components to build new software systems. This paper presents a CBSE approach to build Graphical User Interfaces (GUI) at run-time. Both a component-based perspective of the user interface and a set of component relationships are presented in the paper. As a case study, this paper also describes an application built for an emerging computation environment, Smart TV. A running example is also presented through the paper putting some Web-based solutions to build User Interfaces together (e.g., Wookie, W3C Widgets, Node.js)

    A Cloud Service for COTS component-based Architectures

    Get PDF
    The management of software architectures is an important subject, especially in component-based web user interfaces to enhance their accessibility, dynamism and management at run-time. The Cloud offers some favorable mechanisms for this kind of systems, since it allows us to manage the software remotely, guarantees high availability of the resources and enables us to perform mass storage. This article presents an infrastructure solution, based on the use of web services and cloud computing, for managing COTS-based architectures

    A Web Services Infrastructure for the Management of Mashup Interfaces

    Get PDF
    In the technological world of today, user interfaces (as an essential part of many software applications) are constantly changing in order to meet the needs of different users and adapt to their environment. Accordingly, there is a need for mechanisms to carry out these change processes. This article describes a structure of web services which support the adaptation which constructs mashup type web user interfaces. These interfaces are constructed using third party component architectures, called COTSgets

    An Interface Agent for the Management of COTS-based User Interfaces

    Get PDF
    The great development of the knowledge society on the Internet requires that Web information systems are adapted at runtime to user groups with common interests. Interface agents help us to observe and learn from user preferences making interfaces adaptable to user working habits. We propose an interface agent which works on Web interface based on COTS components, adapting the interface to the user needs or preferences. Our agent runs two main behaviors: observation behavior which analyses the user interaction on the interface and a second behavior which runs the adaptation actions to adapt the user interface at runtime

    Effectiveness and safety of integrase strand transfer inhibitors in Spain: a prospective real-world study

    Get PDF
    IntroductionSecond-generation integrase strand transfer inhibitors (INSTIs) are preferred treatment options worldwide, and dolutegravir (DTG) is the treatment of choice in resource-limited settings. Nevertheless, in some resource-limited settings, these drugs are not always available. An analysis of the experience with the use of INSTIs in unselected adults living with HIV may be of help to make therapeutic decisions when second-generation INSTIs are not available. This study aimed to evaluate the real-life effectiveness and safety of dolutegravir (DTG), elvitegravir/cobicistat (EVG/c), and raltegravir (RAL) in a large Spanish cohort of HIV-1-infected patients.MethodsReal-world study of adults living with HIV who initiated integrase INSTIs DTG, EVG/c, and RAL-based regimens in three settings (ART-naïve patients, ART-switching, and ART-salvage patients). The primary endpoint was the median time to treatment discontinuation after INSTI-based regimen initiation. Proportion of patients experiencing virological failure (VF) (defined as two consecutive viral loads (VL) ≥200 copies/mL at 24 weeks or as a single determination of VL ≥1,000 copies/mL while receiving DTG, EVG/c or RAL, and at least 3 months after INSTI initiation) and time to VF were also evaluated.ResultsVirological effectiveness of EVG/c- and RAL-based regimens was similar to that of DTG when given as first-line and salvage therapy. Treatment switching for reasons other than virological failure was more frequent in subjects receiving EVG/c and, in particular, RAL. Naïve patients with CD4+ nadir <100 cells/μL were more likely to develop VF, particularly if they initiated RAL or EVG/c. In the ART switching population, initiation of RAL and EVG/c was associated with both VF and INSTI discontinuation. There were no differences in the time to VF and INSTI discontinuation between DTG, EVG/c and RAL. Immunological parameters improved in the three groups and for the three drugs assessed. Safety and tolerability were consistent with expected safety profiles.DiscussionWhereas second-generation INSTIs are preferred treatment options worldwide, and DTG is one of the treatment of choices in resource-limited settings, first-generation INSTIs may still provide high virological and immunological effectiveness when DTG is not available
    corecore